/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package kingdoms;

/**
 *
 * @author ezequiel
 */
public class Partida {

    private int rodadaAtual;

    private boolean partidaEmAndamento;

    private AtorJogador jogador1;

    private AtorJogador jogador2;

    private AtorJogador jogadorDaVez;

    private AtorJogador vencedorPartida;

    private boolean partidaEmRede;

    public int getRodadaAtual() {
        return rodadaAtual;
    }

    public void setRodadaAtual(int rodadaAtual) {
        this.rodadaAtual = rodadaAtual;
    }

    public boolean isPartidaEmAndamento() {
        return partidaEmAndamento;
    }

    public void setPartidaEmAndamento(boolean partidaEmAndamento) {
        this.partidaEmAndamento = partidaEmAndamento;
    }

    public AtorJogador getJogador1() {
        return jogador1;
    }

    public void setJogador1(AtorJogador jogador1) {
        this.jogador1 = jogador1;
    }

    public AtorJogador getJogador2() {
        return jogador2;
    }

    public void setJogador2(AtorJogador jogador2) {
        this.jogador2 = jogador2;
    }

    public AtorJogador getJogadorDaVez() {
        return jogadorDaVez;
    }

    public void setJogadorDaVez(AtorJogador jogadorDaVez) {
        this.jogadorDaVez = jogadorDaVez;
    }

    public AtorJogador getVencedorPartida() {
        return vencedorPartida;
    }

    public void setVencedorPartida(AtorJogador vencedorPartida) {
        this.vencedorPartida = vencedorPartida;
    }

    public boolean isPartidaEmRede() {
        return partidaEmRede;
    }

    public void setPartidaEmRede(boolean partidaEmRede) {
        this.partidaEmRede = partidaEmRede;
    }
    
    public void alternarJogadorDaVez() {
        //So eh nulo quando inicia partida
        if (jogadorDaVez != null) {
            jogadorDaVez.sinalizarQueNaoEhSuaVez();
        }

        if (jogador1.equals(jogadorDaVez)) {
            jogadorDaVez = jogador2;
        } else {
            jogadorDaVez = jogador1;
        }

        jogadorDaVez.sinalizarQueEhSuaVez();

    }

    void iniciar() {
        partidaEmAndamento = true;
        rodadaAtual = 1;
    }

    boolean isJogadorDaVez(AtorJogador jogadorSelecionado) {
        return jogadorSelecionado.equals(jogadorDaVez);
    }

    void definirGanhador() {
         if (jogador1.getPontuacao() > jogador2.getPontuacao()) {
            vencedorPartida = jogador1;
        } else if (jogador2.getPontuacao() > jogador1.getPontuacao()) {
            vencedorPartida = jogador2;
        } else {
            vencedorPartida = null;
        }
    }

    public void novaRodada() {
         if (rodadaAtual >= 3) {
           partidaEmAndamento = false;
        }
        rodadaAtual++;
    }

}
